package ThrowDemo;

/**
 * throw关键字
 * 用在方法内部,作用是抛出一个异常对象,可以使编译期,也可以使运行期异常
 * <p>
 * 格式: throw 异常对象
 * 在功能场景内部
 */
public class ThrowDemo {

    //入口
    public static void main(String[] args) {


    }

    //通过throw处理编译期异常
    public static void function() throws CloneNotSupportedException {

        //直接抛出异常
        throw new CloneNotSupportedException();

        /**
         * 如果我们主动通过throw关键字抛出异常,一般需要使用throws关键字添加一个异常声明
         *
         */
    }

    //通过throew处理运行期异常
    public static void show() {

        //定义两个变量
        int a = 23;
        int b = 0;

        //输出a/b
        //在进行下一步操作之前我们需要对除数进行判断.
        //如果除数为0 了,我们需要停止程序并抛出异常对象

        if (b == 0) {
            // throw new ArithmeticException();

            throw new ArithmeticException("除数为零了");

        }
        System.out.println(a / b);
    }
}
